Text Data Pre-processing হল একটি গুরুত্বপূর্ণ পদক্ষেপ যা টেক্সট ডেটাকে মডেলিং এবং বিশ্লেষণের জন্য প্রস্তুত করতে সাহায্য করে। প্রাকৃতিক ভাষা প্রক্রিয়াকরণ (NLP) এ, tokenization, stemming, এবং lemmatization হল তিনটি গুরুত্বপূর্ণ কৌশল যা টেক্সট ডেটা বিশ্লেষণ, মডেল ট্রেনিং এবং ভাষাগত কাঠামো অনুধাবন করার জন্য ব্যবহৃত হয়।
Tokenization হল একটি প্রক্রিয়া যেখানে টেক্সট ডেটাকে ছোট ছোট ইউনিটে (যা tokens নামে পরিচিত) বিভক্ত করা হয়। একটি token হতে পারে একটি শব্দ, বাক্য, বা কোনো অন্য চরিত্র। এই প্রক্রিয়াটি টেক্সট ডেটাকে আরও সহজে প্রক্রিয়া এবং বিশ্লেষণযোগ্য করতে সহায়ক।
import nltk
from nltk.tokenize import word_tokenize, sent_tokenize
text = "Hello there! How are you doing today? This is an example of tokenization."
# Sentence Tokenization
sentences = sent_tokenize(text)
print(sentences)
# Word Tokenization
words = word_tokenize(text)
print(words)
['Hello there!', 'How are you doing today?', 'This is an example of tokenization.']
['Hello', 'there', '!', 'How', 'are', 'you', 'doing', 'today', '?', 'This', 'is', 'an', 'example', 'of', 'tokenization', '.']
Stemming হল একটি প্রক্রিয়া যা শব্দের মূল রূপ বা "stem" বের করার জন্য ব্যবহৃত হয়। এটি একটি শব্দকে তার মূল রূপে রূপান্তরিত করে, তবে কিছু ক্ষেত্রে এটি একটি মানসম্পন্ন শব্দ হতে নাও পারে। উদাহরণস্বরূপ, "running" কে "run" এবং "better" কে "better" রূপে রূপান্তরিত করা।
from nltk.stem import PorterStemmer
stemmer = PorterStemmer()
# শব্দগুলোকে স্টেম করা
words = ["running", "runner", "ran", "easily", "fairly"]
stems = [stemmer.stem(word) for word in words]
print(stems)
['run', 'runner', 'ran', 'easili', 'fairli']
Lemmatization হল একটি আরও উন্নত প্রক্রিয়া যা শব্দের সঠিক মূল রূপ বা "lemma" বের করে। এটি স্টেমিংয়ের মতো নয়, কারণ এটি শব্দের অর্থ এবং ব্যবহার বুঝে মূল রূপ নির্ধারণ করে। Lemmatization শব্দের সঠিক ব্যাকরণগত রূপ প্রদান করে, যেমন "better" কে "good" বা "running" কে "run" এ রূপান্তরিত করা।
from nltk.stem import WordNetLemmatizer
lemmatizer = WordNetLemmatizer()
# শব্দগুলোকে লেমা করা
words = ["running", "runner", "ran", "better", "worse"]
lemmas = [lemmatizer.lemmatize(word, pos='v') for word in words]
print(lemmas)
['run', 'runner', 'run', 'better', 'worse']
পার্থক্যের ধরন | Tokenization | Stemming | Lemmatization |
---|---|---|---|
উদ্দেশ্য | টেক্সটকে ছোট ছোট ইউনিটে (tokens) ভাগ করা | শব্দের মূল রূপ বের করা | শব্দের সঠিক মূল রূপ বের করা |
আউটপুট | শব্দ বা বাক্য | অসম্পূর্ণ শব্দ | সঠিক ব্যাকরণগত রূপ |
একিউরেসি | N/A | কম একিউরেসি | উচ্চ একিউরেসি |
কষ্ট/কমপ্লেক্সিটি | তুলনামূলকভাবে সহজ | অপেক্ষাকৃত দ্রুত, কিন্তু মাঝে মাঝে অশুদ্ধ | ধীর, তবে বেশি সঠিক |
ব্যবহার | ডেটা প্রক্রিয়াকরণ | দ্রুত প্রক্রিয়াকরণ, সাধারণ ক্ষেত্রে | টেক্সট বিশ্লেষণ, ক্লাসিফিকেশন, সেন্টিমেন্ট বিশ্লেষণ |
Text Data Pre-processing একটি অত্যন্ত গুরুত্বপূর্ণ ধাপ যা টেক্সট ডেটাকে মডেলিং এবং বিশ্লেষণের জন্য প্রস্তুত করতে সাহায্য করে। Tokenization শব্দ বা বাক্যের মধ্যে ডেটা ভাগ করে, Stemming শব্দের মূল রূপ বের করে, এবং Lemmatization শব্দের সঠিক ব্যাকরণগত রূপ বের করে। এভাবে এগুলি প্রাকৃতিক ভাষা প্রক্রিয়াকরণ (NLP) কাজে ব্যবহৃত হয়।
Read more